์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ
์ด์คdoubly ๋งํฌ๋ ๋ฆฌ์คํธ๋
ํ ๋
ธ๋๊ฐ ์๊ธฐ ์์ ์๋ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ ๊ฐ์ง๊ณ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค.
(๋ ธ๋1) <-> (๋ ธ๋2) <-> (๋ ธ๋3) ์ด๋ ๊ฒ
์ฌ๊ธฐ์๋ ๋งจ ์์ ๋ ธ๋๋ฅผ ํค๋๋ผ๊ณ ๋ถ๋ฅธ๋ค๊ณ .
์ฝ์
-
๋งจ ์์ ์ฝ์
- ์ ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ
- ๊ธฐ์กด์ ํค๋์ prev ํฌ์ธํฐ๊ฐ ์ ๋ ธ๋๋ฅผ ํฅํ๊ฒ ๋ง๋ ๋ค.
- ์ ๋ ธ๋์ Next ๋ฅผ ๊ธฐ์กด์ ํค๋ ๋ ธ๋๋ก
- ์ ๋ ธ๋์ prev ํฌ์ธํฐ๋ฅผ null ๋ก ํ๋ค.
-
๋งจ ๋์ ์ฝ์
- ์ ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ
- ๊ธฐ์กด์ ๋ง์ง๋ง ๋ ธ๋์ next๊ฐ ์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๊ณ
- ์ ๋ ธ๋์ prev๊ฐ ๊ธฐ์กด์ ๋ง์ง๋ง ๋ ธ๋๋ก
- ์ ๋ ธ๋์ Next๋ฅผ Null๋ก
-
์ค๊ฐ์ ์ฝ์
- ์ ๋ ธ๋๋ฅผ ๋ง๋ค๊ณ
- ์ ๋ ธ๋์ prev์ next๋ฅผ ๊ฐ๊ฐ ์ง์ ํด์ฃผ๊ณ
- ์ ๋ ธ๋์ next์ ๋ค ๋ ธ๋์ prev๋ฅผ ์ ๋ ธ๋๋ก
์ญ์
์ญ์ ๋ ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก free()
๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์์ค์ผ ํ๋๊ฒ์ ์ ๊ฒฝ์จ์ผ ํ๋ค.
- ๋งจ ์ ๋ ธ๋ ์ญ์
- ๋งจ ๋ ๋ ธ๋ ์ญ์
- ์ค๊ฐ ๋ ธ๋ ์ญ์
์ ๋ฆฌ
์์๊ฐ ์ค์ํ ๋ฐ์ดํฐ๋ค์ ๋ชจ์๋๋ ์๋ฃํ์ '๋ฆฌ์คํธ'๋ผ๊ณ ํ๊ณ
๊ฐ์ฅ ๊ฐ๋จํ๊ฑด '๋ฐฐ์ด'์ด๋ค.
ํ์ง๋ง ๋ฏธ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ง์ ํด์ผ๋๋ค๋ ๋จ์ ๊ณผ ์์ ์์๋ฅผ ์ฝ์
ํ๊ฑฐ๋ ์ญ์ ํ ๋ ๋ถํธํ๋ค๋ ๋จ์ ๋๋ฌธ์ '๋งํฌ๋ ๋ฆฌ์คํธ'๋ผ๋ ์๋ฃํ์ ์ฌ์ฉํ๋ค.
ํฌ์ธํฐ
๋งํฌ๋ ๋ฆฌ์คํธ์์ ์ฌ์ฉ๋๋ 'ํฌ์ธํฐ'๋ผ๋๊ฒ ๋ฑ์ฅ.
๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๊ฐ์ ๊ฐ๋ฆฌํค๊ณ ์๋ ๋ณ์๋ค.
๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฐฐ์ด์ฒ๋ผ ์์๋ค์ด ์๋ก ์ด์ํ๊ณ ์์ง ์๊ธฐ ๋๋ฌธ์,
๋ฆฌ์คํธ์ ์์๋ฅผ ๋ฃ์ ๋, ํญ์ ์๋ก์ด ๋
ธ๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ๋
ธ๋์ ์ฃผ์๊ฐ์ ์ด์ ๋
ธ๋์ ์ ์ฅํ๋ค.
๊ทธ๋์ ๋ฆฌ์คํธ๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ์ํํ ๋ ๊ฐ ๋
ธ๋์ ์ ํ ์ฃผ์๊ฐ๋ค์ ํ๊ณ ํ๊ณ ์ด๋ํ๋๊ฒ.
๋งํฌ๋ ๋ฆฌ์คํธ์ ์ฝ์ , ์ญ์
์ฝ์
ํ๊ฑฐ๋ ์ญ์ ํ ๋ ์ ๊ฒฝ์จ์ผํ๋ ๋ถ๋ถ์ด ์๋ค.
์๋ก์ด ๋
ธ๋๋ฅผ ๋ฃ์ ๋ 1) ๋จผ์ ์๋ก์ด ๋
ธ๋๋ฅผ ๋ง๋ค๊ณ ์ ๋
ธ๋์ ํฌ์ธํฐ์ ๋ค์ ๋
ธ๋์ ์ฃผ์๊ฐ์ ๋ฃ์ด์ฃผ๊ณ , 2) ๊ทธ ๋ค์์ ์ ๋
ธ๋์ ์ฃผ์๊ฐ์ ์ด์ ๋
ธ๋์ ํฌ์ธํฐ์ ๋ฃ์ด์ค์ผ ํ๋ค.
๊ทธ๋ฌ์ง ์๊ณ ๋จผ์ ์ ๋
ธ๋์ ์ฃผ์๊ฐ์ ์ ๋
ธ๋์ ํฌ์ธํฐ์ ๋ฃ์ด๋ฒ๋ฆฌ๋ฉด, ๊ธฐ์กด์ ๊ฐ์ง๊ณ ์๋ ์ฃผ์๊ฐ์ด ์ฌ๋ผ์ง๊ฒ ๋๊ณ ์ ๋
ธ๋๊ฐ ์์ ์ ํฌ์ธํฐ์ ๋ฃ์ ์ฃผ์๊ฐ์ ์ ์ ์๊ฒ ๋๋ค.
์ญ์ ํ ๋์๋ ๋ง์ฐฌ๊ฐ์ง๋ก free()
ํจ์๋ก ํด๋น ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋น์์ค์ผ ํ๊ธฐ ๋๋ฌธ์ (๊ฐ๋น์ง ์ปฌ๋ ๊ฑฐ๊ฐ ์๊ธฐ ๋๋ฌธ์) ์ฃผ์๊ฐ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
(์ด๋ฐ ๊ณผ์ ๋ค์ ์ง์ ๊ตฌํํด์ผ ํ๊ธฐ ๋๋ฌธ์ C์ธ์ด๊ฐ ๊ณต๋ถํด๋ณผ๋ง ํ ์ธ์ด๋ผ๊ณ ํ๋ค.)
์คํ
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๊ฐ๋จํ ๋ฐ์ดํฐ ๊ตฌ์กฐ.
๋จผ์ ๋ค์ด์จ๊ฒ ๋์ค์ ๋๊ฐ๋ค.
๊ทผ๋ฐ ์ ๊ตณ์ด ๊ทธ๋ ๊ฒ ํด์ผ๋ ๊น? ๋ฃ๋ ์์์ ์๊ด ์์ด ์๋ฌด๋ ๊ฒ๋ ์ ๊ทผํ๊ณ ์ฝ๊ณ ์ฐ๊ณ ํ ์ ์์ผ๋ฉด ๋ ์ข์๊ฑฐ ์๋๊ฐ?
๊ตณ์ด ๋ง์ง๋ง์ผ๋ก ๋ฃ์ ์๋ฃ์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ๊ฐ๋ ฅํ ์ ํ์ ๋ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ฐ๋ก ์๋ฌ๋ฅผ ๋ง๊ธฐ ์ํด์.
์คํ์ ์ฌ์ฉํ๋ฉด ํธํ ๊ฒฝ์ฐ?
- ๊ดํธ ์ง ๋ง์ถ๊ธฐ
- ์ธํฝ์ค๋ฅผ ํฌ์คํธํฝ์ค๋ก ๋ณํํ๊ธฐ
(1+2)*3
์ฒ๋ผ ์ธ๊ฐ์๊ฒ ์ต์ํ ๋ฐฉ์์ '์ธํฝ์ค'.
์ปดํจํฐ๋ 'ํฌ์คํธํฝ์ค'(ํน์ ํ๋ฆฌํฝ์ค) ๋ฐฉ์์ ์ ํธํ๋ค.
์์ ์์ ํฌ์คํธ ํฝ์ค๋ก๋312+*
.
ํด์ํ๋ฉด ์ฐ์ฐ์์ ์ผ์ชฝ ๋ ์ซ์๋ฅผ ์ฌ์ฉํด ์ฐ์ฐ์ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์ผ์ชฝ ์ซ์์ ํจ๊ป ์ค๋ฅธ์ชฝ ์ฐ์ฐ์์ ํด๋นํ๋ ์ฐ์ฐ์ ์คํ.- ํฌ์คํธ ํฝ์ค ์์ ๊ณ์ฐํ๊ธฐ
- ํจ์ ํธ์ถ ๊ตฌํํ๊ธฐ
- ์คํฌ(span) ์ฐพ๊ธฐ
- ์น ๋ธ๋ผ์ฐ์ ์์ ๋ฐฉ๋ฌธํ ํ์ด์ง ๊ธฐ๋ก ๊ด๋ฆฌํ๊ธฐ
- ํ ์คํธ ์๋ํฐ์์ ์์ ์ทจ์ ๊ณผ์
- html์ xml์์ ํ๊ทธ ์ง ๋ง์ถ๊ธฐ
์ ์
์ฝ์
๊ณผ ์ญ์ ๊ฐ ํ์ชฝ ๋์์ ์ด๋ฃจ์ด์ง๋, ์์๊ฐ ๋งค๊ฒจ์ง ๋ฆฌ์คํธ.
์ด ๋์ ํ(Top)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
('๋ฆฌ์คํธ'์ ์ข
๋ฅ์ด๋๊น ์์๊ฐ ์ค์ํ๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ์์ ์ค์ํ ์์๋ ๋ฐ๋ก ์ฝ์
๋ ์์๋ผ๋๊ฒ๋ ์ ์ ์๋ค.)
์คํ ADT
ADT๋ '์ถ์๋ฐ์ดํฐํ์
'.
์ค์ ๋ก ์ด๋ป๊ฒ ๊ตฌํ๋์๋ ์๊ด ์์ด ํน์ ๋ฐฉ์์ผ๋ก ์๋ ํ๋ค๋ฉด ๊ทธ๊ฒ์ '์คํ'์ด๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋๊น ๊ทธ 'ํน์ ๋ฐฉ์'์ ์ ์ดํดํ๋๊ฒ์ด ์ค์.
push()
pop()
์ด ์ผ๋จ ๊ฐ์ฅ ์ค์ํ ์ฐ์ฐ๋ค.